home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Portable Patmos 1.1 / patmos-src / src / 68030.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-01-19  |  1010 b   |  61 lines  |  [TEXT/KAHL]

  1. #include "crtlocal.h"
  2. #include "proc_mmu.h"
  3.  
  4.      extract(cacr, 0x0002);
  5. #pragma parameter put_cacr(__D0)
  6.     stuff(put_cacr, 0x0002);
  7.  
  8. static long get_tcr() = {0xF02E, 0x4200, 0xFFFC};
  9. static void put_tcr() = {0xF02F, 0x4000, 0x0008};
  10. static void get_crp() = {0xF037, 0x4E00, 0x8161, 0x0008};
  11. static void get_srp() = {0xF037, 0x4A00, 0x8161, 0x0008};
  12. static void put_crp() = {0xF037, 0x4C00, 0x8161, 0x0008};
  13. static void pflusha() = {0xF000, 0x2400};
  14.  
  15. long get_68030_tc()
  16.     {
  17.     long mask;
  18.     get_tcr();
  19.     return mask;
  20.     }
  21.  
  22. void put_68030_tc(long mask)
  23.     {
  24.     put_tcr();
  25.     }
  26.     
  27. void get_68030_crp(long *vec)
  28.     {
  29.     get_crp();
  30.     }
  31.  
  32. void get_68030_srp(long *vec)
  33.     {
  34.     get_srp();    
  35.     }
  36.  
  37. void put_68030_crp(long *vec)
  38.     {
  39.     put_crp();
  40.     }
  41.  
  42. #define cpusha() put_cacr(cacr()|0x808)
  43.  
  44. void flush_68030_caches(void)
  45.     {
  46.     cpusha();
  47.     }
  48.  
  49. void flush_68030_mmu_caches(void)
  50.     {
  51.     cpusha();
  52.     pflusha();
  53.     }
  54.  
  55. #define MMU68030
  56. pascal void trap_patch_68030_0(void)
  57. #include "patch0.c"
  58.  
  59. pascal void trap_patch_68030_1(unsigned short fault)
  60. #include "patch1.c"
  61.